//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using System.Xml;
using CommunityServer.Components;

namespace CommunityServer.Files.Components
{
	/// <summary>
	/// Summary description for BaseFilesFormattedBodyModule.
	/// </summary>
	public abstract class BaseFilesFormattedBodyModule : ICSModule
	{
		public BaseFilesFormattedBodyModule()
		{
			//
			// TODO: Add constructor logic here
			//
		}

		public void Init(CSApplication csa, XmlNode node)
		{
			csa.PrePostUpdate +=new CSPostEventHandler(csa_BeforeProcessPost);
		}

		private void csa_BeforeProcessPost(IContent content, CSPostEventArgs e)
		{
			if(e.ApplicationType == ApplicationType.FileGallery && (e.State == ObjectState.Create || e.State == ObjectState.Update))
			{
				Entry entry = content as Entry;
				if(entry != null)
				{
					Format(entry);
				}

				EntryComment comment = content as EntryComment;
				if (comment != null)
				{
					Format(comment);
				}
			}
		}

		protected abstract void Format(Entry e);

		protected virtual void Format(EntryComment ec)
		{
		}
	}
}
